home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / signal.arc / SIGNAL.H < prev    next >
Text File  |  1985-07-26  |  2KB  |  45 lines

  1. struct intinfo {
  2.         short   Di;     /* Di prior to interrupt */
  3.         short   Si;     /* Si prior to interrupt */
  4.         short   Dx;     /* Dx prior to interrupt */
  5.         short   Cx;     /* Cx prior to interrupt */
  6.         short   Bx;     /* Bx prior to interrupt */
  7.         short   Ax;     /* Ax prior to interrupt */
  8.         short   Sp;     /* Sp prior to interrupt (see note) */
  9.         short   Ss;     /* Ss prior to interrupt */
  10. /* The following defines the interrupt boot code and should */
  11. /* not be modified */
  12.         char    LCALL[5];       /* Call to XCINTCOM  */
  13.         char    IRET;           /* Iret instruction  */
  14.         short   FUNCIP;         /* IP of function */
  15.         short   FUNCCS;         /* CS of function */
  16.         short   FUNCDS;         /* DS of function */
  17.         short   FUNCSS;         /* SS of function */
  18. };
  19. /*
  20.         Note: By using the data obtained from intinfo.Ss and intinfo.Sp
  21.               you can obtain access to the following information:
  22. */
  23. struct intinfo2 {
  24.         short Bx;        /* Bx prior to interrupt */
  25.         short Ds;        /* Ds prior to interrupt */
  26.         short Es;        /* Es prior to interrupt */
  27.         short Bp;        /* Bp prior to interrupt */
  28.         short Reserv1;   /* Ip to IRET in the IBC */
  29.         short Reserv2;   /* Cs to IRET in the IBC */
  30.         short Ip;        /* Ip prior to interrupt        <--+  Hardware   */
  31.         short Cs;        /* Cs prior to interrupt           += generated  */
  32.         short Flags;     /* Flags prior to interrupt     <--+  during int */
  33. /* Anything following here belongs to the task that was interrupted */
  34. };
  35. /* Both of the following assume that the pointer is a character pointer */
  36.  
  37. #define SIZE_OF_IBC     14     /* Size of interrupt boot field */
  38.                                /* This is added to the size of the */
  39.                                /* Stack and contains the code to */
  40.                                /* call XCINTCOM. */
  41. #define OFFSET_TO_REGS 16      /* Amount to subtract from end of */
  42.                                /* allocated stack to get to callers */
  43.                                /* regs */
  44. char *signal();
  45.